Scrambling of digital signals is routinely used in certain communications applications. In others, such as data communications systems, scrambling is typically done to assure transitions in the received data signal and thereby avoid loss of synchronization in the data recovery process. It is also used to assure "whiteness" of data for adaptive processors. Transmission delays across the communications channel are never constant, and, as such, there is always a need to synchronize the scrambler and descrambler with the inherently unknown system delay. One commonly-used prior art self-synchronizing arrangement scrambles/descrambles using a "key" signal. Within the transmitter, the data signal is scrambled using the key signal while, within the receiver, the received scrambled data signal is descrambled using the same key signal. The key signal is typically derived from the scrambled data signal is the scrambler and descrambler. The problem with this arrangement is that a single difference between the transmitted and received scrambled data signal results in a multiplication of errors in the descrambled data signal. In an effort to avoid the above described error multiplication problem, a technique known as "closed-loop" scrambling/descrambling has been done. In this mode of scrambling, the keys stored in the scrambler and descrambler are prestored and are updated only using the contents stored in each register. As a result, the updating is independent of errors in the received signal and the problem of error multiplication is avoided. There are two major shortcomings with closed loop scrambling/descrambling. First, synchronization of the scrambler and descrambler operations must be provided by communicating signals between these devices in addition to the scrambled data. In certain applications, such as high-speed voice and video applications, this is difficult and expensive to implement. Second, seeding the scrambler and descrambler with the same information for forming the initial key signals is oftentimes impractical for certain system applications. It would, therefore, be extremely desirable if an inexpensive, easy to implement, self-synchronizing, scrambling/descrambling arrangement could be provided which overcomes the problem of error multiplication.